package com.zjh.admin.sys.mapper;

import com.zjh.admin.sys.model.RoleEntity;
import com.zjh.core.base.basemapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @author ZWX
 * @Description: 角色mapper
 * @date 2018/11/12 17:42
 */
@Repository
public interface RoleMapper extends BaseMapper<RoleEntity, Long> {

    /**
     * 查询该角色下是否有用户
     *
     * @param roleId 角色id
     *               使用@Param注解主要是设置mapping中可以使用参数名进行取值
     * @return
     */
    int findRoleUserById(@Param(value = "roleId") int roleId);

    /**
     * 删除角色的权限信息
     *
     * @param roleId 角色id
     *               使用@Param注解主要是设置mapping中可以使用参数名进行取值
     * @return
     */
    int deleteRoleResource(@Param(value = "roleId") int roleId);

    /**
     * 添加角色和权限映射信息
     *
     * @param parameter
     * @return
     */
    int addRoleResource(Map<String, Object> parameter);

    /**
     * 查询该角色是否有权限信息
     * @param roleId	角色id
     * 使用@Param注解主要是设置mapping中可以使用参数名进行取值
     * @return
     */
    int findRoleResourceById(@Param(value = "roleId") int roleId);

    /**
     * 批量添加角色和权限映射信息
     * @param parameter
     * @return
     */
    int addRoleResourceBatch(Map<String, Object> parameter);

    /**
     * 根据角色Id查询用户Ids
     * @param roleId
     * @return
     */
    List<Long> findUserIdByRoleId(@Param(value = "roleId") Integer roleId);
}
